home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok29.lha / Strings / Strings.dok < prev    next >
Text File  |  1993-08-15  |  4KB  |  96 lines

  1. ======================================================================
  2. Dokumentation zu "Strings" Version 1.0
  3. Autor: Nicolas Benezan, Postwiesenstr. 2, D7000 Stuttgart 60
  4. ======================================================================
  5.  
  6. Kopierrecht
  7. ­­­­­­­­­­­
  8. Das komplette Packet (Quelltext, Dokumentation und Objectcode) ist
  9. Public Domain Software. Es darf beliebig kopiert und verbreitet werden
  10. solange...
  11.  
  12. * mein Name und dieser Kopierrechtshinweis erhalten bleiben,
  13. * die Vollständigkeit des ganzen Packets gewährleistet ist, und
  14. * mit dem Vertrieb dieser Software kein Gewinn erwirtschaftet wird.
  15.  
  16. Die Kommerzielle Nutzung ohne meine ausdrückliche schriftliche
  17. Genehmigung ist untersagt (über Gewinnbeteiligung läßt sich reden).
  18. W i c h t i g: Dies gilt insbesondere auch für "schwarze Schafe" der "PD"-
  19. Versandhäuser, die ganz offensichtlich Gewinn machen, was z.B. durch
  20. ganzseitige Anzeigen in Zeitschiften erkennbar ist.
  21.  
  22. Verbesserungsvorschläge sind stets willkommen. Falls Sie Veränderungen
  23. am Programm vornehmen, dokumentieren Sie diese bitte gut verständlich.
  24. Es würde mich freuen, wenn Sie mich über größere Veränderungen in
  25. Kenntnis setzen würden.
  26.  
  27. (c) 1988 by Nicolas Benezan.
  28.  
  29.  
  30. Übersicht
  31. ­­­­­­­­­
  32. * Umfang des Packets
  33. * Einleitung
  34. * Beschreibung der Module
  35.  
  36. Umfang des Packet
  37. ­­­­­­­­­­­­­­­­­
  38. Das komplette Packet "Strings" beinhaltet folgendes:
  39.  
  40. *  StringOps.dok                Diese Dokumentation
  41. *  StringOps.def, -.mod         grundlegende Stringoperationen, Quellcode
  42. *  StringOps.sym, -.obj         grundlegende Stringoperationen, compiliert
  43. *  StringForm.def, -.mod        Formatierung von Strings, Quellcode
  44. *  StringForm.sym, -.obj        Formatierung von Strings, compiliert
  45. *  StringConv.def, -.mod        Umwandlung String/numerisch, Quellcode
  46. *  StringConv.sym, -.obj        Umwandlung String/numerisch, compiliert
  47.  
  48. (Stand 1.Dez.1989)
  49.  
  50.  
  51. Einleitung
  52. ­­­­­­­­­­
  53. Modula-2 bietet von sich aus praktisch keine Möglichkeiten, Zeichenketten
  54. (Strings) zu verarbeiten, und das Standardmodul "Strings" ist sehr
  55. umständlich und nicht gerade logisch aufgebaut (Ich hasse "Wollmilchsau"-
  56. Prozeduren). Das Modul "Str" ist schon sehr viel kompakter, aber es gibt
  57. Dinge die kann man mit "Str" nicht machen (z.B. einen Teilstring aus einem
  58. großen String herausschneiden). Deshalb braucht man meistens beide Module.
  59.  
  60. Ich habe mir deshalb meine eigenen Module zur Stringbearbeitung geschrieben,
  61. und dabei darauf geachtet, wie ich meine, eine sinnvollere Schnittstelle
  62. wie die von "Strings" und "Str" zu definieren.
  63. Weil in Assembler geschrieben, dürfte "Str" im Moment noch schneller sein
  64. als mein Modul. Ich habe aber vor, zeitkritische Routinen (Length, Compare
  65. usw.) irgendwann einmal zu optimieren. (Tips für schnellere Algorithmen
  66. sind jederzeit willkommen.) Leider braucht "StringOps" auch ungefähr so
  67. viel Speicher wie "String" und "Str" zusammen.
  68.  
  69.  
  70. Beschreibung der Module
  71. ­­­­­­­­­­­­­­­­­­­­­­­
  72. "StringOps" beinhaltet die Grundlegenden Operationen wie Anfügen, Trennen,
  73. Kopieren, Vergleichen, Einfügen und Löschen von Strings.
  74. Alles wichtige über die Verwendung der Prozeduren steht eigentlich im
  75. Definitionsmodul, weshalb ich hier auf eine Beschreibung im Einzelnen
  76. verzichten möchte.
  77.  
  78. "StringForm" enthält Prozeduren zum Formatiern von Strings wie z.B.
  79. Zentrieren, Rechts/Linksbündig machen, Anfügen oder Entfernen von
  80. Leerzeichen usw.
  81. Da man solche Operationen nur in seltenen Fällen braucht, wurden sie nicht
  82. in "StringOps" integriert.
  83.  
  84. "StringConv" bietet Prozeduren zum Umwandeln von (Long-)Integer- und
  85. Cardinal- Variablen zu Strings und umgekehrt an. Es wurde auch hier darauf
  86. geachtet, eine möglichst sinnvolle und kompakte Schnittstelle zu
  87. definieren. Während man z.B. bei "StrToVal" aus dem Modul "Conversions"
  88. eine Unmenge von meist unnötigen VAR-Parametern braucht (signed, base,
  89. err), hat "StrToInt" aus "StringConv" nur einen einzigen Parameter und
  90. liefert das Resultat als Funktionsrückgabewert, sodaß es direkt in
  91. Rechnungen (Expressions) eingesetzt werden kann. Wegen der
  92. Zuweisungskompatiblität von LONGINT, INTEGER und CARDINAL braucht man
  93. meistens auch keine Dummy-Variable als Zwischenspeicher (der Parameter "l"
  94. von "StrToVal" muß wegen des VARs immer LONGINT sein).
  95.  
  96.